home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / c / c-bat-0.1n / c-bat-0 / c-bat-0.1 / src / c-bat.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-06-16  |  8.7 KB  |  165 lines

  1. /*
  2.     c-bat.h : Browsing an Analysis Tool for C-source code;
  3.               Global data-structures and defines for all browser modules
  4.  
  5.     Copyright (C) 1993  Eckehard Stolz
  6.  
  7.     This program is free software; you can redistribute it and/or modify
  8.     it under the terms of the GNU General Public License as published by
  9.     the Free Software Foundation (version 2 of the License).
  10.  
  11.     This program is distributed in the hope that it will be useful,
  12.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.     GNU General Public License for more details.
  15.  
  16.     You should have received a copy of the GNU General Public License
  17.     along with this program; if not, write to the Free Software
  18.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  19.  */
  20.  
  21.  
  22. #define MAX_FILENAME          256  /* Maximum Filename of Source Files 
  23.                                       (INCLUDING DIRECTORY !!!)
  24.                                       Not maxpath because this would use
  25.                                       up too much memory (I use a lot of
  26.                                       static string arrays !)
  27.                                       But who the hell uses longer file-
  28.                                       names than 256 char's ???
  29.                                     */
  30.  
  31. #define MAX_IDENT             256  /* Maximum Identifier-size read in  */
  32. #define HASH_ARRAY_INIT_SIZE  100  /* Hash-Index-Array with 100 elements*/
  33.  
  34. /* commands must be smaller than 0xff because they are used to filter
  35.    messages from server
  36.  */
  37. #define CMD_INIT           1 /* Initialize                         */
  38. #define CMD_CALLS          2 /* Get functions called by target     */
  39. #define CMD_CALLED_BY      3 /* Get functions that call target     */
  40. #define CMD_FUNCT_POS      4 /* Get position of target-function    */
  41. #define CMD_VAR_POS        5 /* Get position of target-variable    */
  42. #define CMD_USES           6 /* List Var-usage in target-function  */
  43. #define CMD_USED_BY        7 /* List function that use variable    */
  44. #define CMD_USES_ALL       8 /* usage of all variable in function  */
  45. #define CMD_FILE           9 /* Module, where FILE belongs to      */
  46. #define CMD_INCLUDES      10 /* Return Include-Files of given file */
  47. #define CMD_FUNCTIONS     11 /* Return all functions in project    */
  48. #define CMD_VARIABLES     12 /* Return global variables in project */
  49. #define CMD_WHAT_IS       13 /* Return all types of given symbol   */
  50. #define CMD_INCLUDED_BY   14 /* Return files which include file    */
  51.  
  52.  
  53. /* These commands work like the corresponding command above, except
  54.    that every symbole is returned just once instead of every 
  55.    occurence 
  56.  */
  57. #define CMD_CALLS_ONCE     15 /* Get functions called by target      */
  58. #define CMD_CALLED_BY_ONCE 16 /* Get functions that call target      */
  59. #define CMD_USES_ONCE      17 /* List Var-usage in target-function   */
  60. #define CMD_USED_BY_ONCE   18 /* List function that use variable     */
  61.  
  62.  
  63. #define CMD_STRUCTS        19 /* List structs in project             */
  64. #define CMD_UNIONS         20 /* List unions in project              */
  65. #define CMD_ENUMS          21 /* List enums in project               */
  66. #define CMD_TYPEDEFS       22 /* List typedefs in project            */
  67.  
  68. #define CMD_REFERENCE      23 /* position, where component used      */
  69. #define CMD_REFERENCE_F    24 /* component used in a function        */
  70. #define CMD_REFERENCE_V    25 /* component and variable in same line */
  71.  
  72. #define CMD_FILES          26 /* All files in a project              */
  73. #define CMD_WORK_DIR       27 /* Return files which include file     */
  74. #define CMD_MACROS         28 /* Return all macro-definition         */
  75. #define CMD_MACRO_POS      29 /* Get position of target-macro        */
  76. #define CMD_SEND_FILE      30 /* Send File and lineno as arguments   */
  77. #define CMD_DEF_POS        31 /* position of item (SEND_FILE first)  */
  78.  
  79. #define CMD_CONNECT      101 /* Client requests connection to server   */
  80. #define CMD_RELEASE      102 /* Client terminates connection to server */
  81. #define CMD_TERMINATE    103 /* Client requests termination of server  */
  82. #define CMD_ABORT        104 /* Client aborts actual request           */
  83. #define CMD_SERVER       105 /* Server requests ID from Master         */
  84. #define CMD_SERVERKILL   107 /* Server releases ID in Master           */
  85. #define CMD_SERVER_ID    108 /* Clients requests ID of matching server */
  86. #define CMD_SERVERTABLE  109 /* old master sends table to new master   */
  87. #define CMD_S_TABLE_END  110 /* Server-table sent completly            */
  88. #define CMD_NEW_FILE     111 /* Server has a new browser-file          */
  89. #define CMD_TABLE        112 /* client requests server-table           */
  90.  
  91. #define RET_FILE          501 /* Return a File and (optional) Module     */
  92. #define RET_FUNCT         502 /* Return function-name and position       */
  93. #define RET_VAR           503 /* Return variable-name and position       */
  94. #define RET_L_VAR         504 /* Return local variable-name and position */
  95. #define RET_POS           505 /* Returns Position                        */
  96. #define RET_END           506 /* No more items found                     */
  97. #define RET_ERROR         507 /* Error: Message send in arg1             */
  98. #define RET_OK            508 /* CMD_INIT was successful                 */
  99. #define RET_STRUCT        509 /* Structure-name                          */
  100. #define RET_UNION         510 /* Union name                              */
  101. #define RET_ENUM          511 /* Enum name                               */
  102. #define RET_E_CONST       512 /* Enum Constant                           */
  103. #define RET_S_COMP        513 /* Struct Component                        */
  104. #define RET_U_COMP        514 /* Union Component                         */
  105. #define RET_TYPEDEF       515 /* Typedef                                 */
  106. #define RET_REFERENCE     516 /* Usage of a struct or union component    */
  107. #define RET_FPOS          517 /* Position of a function (incl. endline)  */
  108. #define RET_DIR           518 /* Working directory of a file             */
  109. #define RET_MACRO         519 /* Macro definition                        */
  110. #define RET_COMP          520 /* Struct or Union comp. (WHAT_IS)         */
  111. #define RET_ENUM_C        521 /* Enum constant (WHAT_IS)                 */
  112.  
  113. #define RET_CONNECT       601 /* Connection established                  */
  114. #define RET_REFUSED       602 /* Connection to server refused            */
  115. #define RET_CMD_UNKNOWN   603 /* Command unknown to server               */
  116. #define RET_TIMEOUT       604 /* Server did not respond                  */
  117. #define RET_ABORT         605 /* Command aborted                         */
  118. #define RET_PLEASE_WAIT   606 /* Server requests more time               */
  119. #define RET_SERVER_ID     607 /* Master-Server returns server ID         */
  120.  
  121. #define SECONDS_TIMEOUT     5 /* Client waits 5 seconds (240 for debugging)   */
  122. #define SECONDS_PATIENCE    2 /* Server sends RET_PLEASE_WAIT every 2 seconds */
  123.  
  124. #define INTRFACE_BUFSIZE  1024 /* maximum size of message */
  125. #define STRINGSIZE        80  
  126. #define ARGUMENT_OFFSET   12  /* 12 Byte offset, before Arguments       */
  127.                               /* command (2) + flags (2) + pid (4) + id */
  128.  
  129. #define DEFAULT_KEY       11  /* default Key for IPC-message queue     */
  130. #define MASTER_ID          1  /* ID of master-server.                  */
  131.  
  132. #define MAX_CLIENTS       20  /* maximum of 20 clients connected to    */
  133.                               /* the servers at a time                 */
  134.  
  135. #define MAX_SERVERS        7  /* maximum of 7 servers                  */
  136. #define TMP_SERVER_ID      8  /* temporary Server ID                   */
  137.  
  138. extern  int client_pid;  /* pid of client that issued actual command */
  139.  
  140. #ifdef BRS_SERVER
  141.  
  142. extern long  cmd_id;   /* Id if msg sent by client application */
  143. extern long  ret_id;   /* Id of return-message sent by server  */
  144.  
  145. extern short get_brs_cmd(char *arg1, char *arg2);
  146. extern void send_brs_ret( short ret_code, short flag, int pid, 
  147.                    char * arg1, char *arg2, char *arg3, char *arg4 );
  148. #else
  149.  
  150. extern long  cmd_id;   /* Id if msg sent by client application */
  151. extern long  ret_id;   /* Id of return-message sent by server  */
  152.  
  153. extern short get_brs_ret(short command, int *server, short *flag, char *arg1, 
  154.                          char *arg2, char *arg3, char *arg4);
  155. extern void send_brs_cmd( int server, short command, short flag, 
  156.                          char * arg1, char *arg2);
  157.  
  158. short brs_get_msg_debug(short command, int * server, int *pid, short *ret_cmd, int *ret_id, 
  159.                     short *r_flag, char *arg1, 
  160.                     char *arg2, char *arg3, char *arg4);
  161. #endif
  162.  
  163. extern short brs_get_any_message(int *type, short *cmd, short *flag, 
  164.                           int *pid, long *id, char *buf);
  165.